草庐IT

git - Capistrano 和几个 SSH key

全部标签

ruby - Capistrano 3 复制策略等效

我更新到第3章,似乎不再支持set:deploy_via,:copy。在releaseannoucement有一个视频链接用于复制当前返回404的复制策略。我使用了:copy策略,因为服务器无法访问git或访问存储库,因为它在防火墙后面。用v3复制此功能的最佳方法是什么? 最佳答案 我遇到了同样的问题,并在capistranogooglegroup上发布了类似的问题。参见此处:https://groups.google.com/forum/#!topic/capistrano/BRa4Vj1_mEo简短回答:编写您自己的rake任务

ruby-on-rails - 如何使用来自 git hook post-receive 的特定 rvm gemset 进行 bundle 安装?

因此,我正在尝试在不使用capistrano的情况下实现类似heroku的部署。为了检查和安装gems,我尝试使用githook并将以下命令放入/hooks/post-receive:bundlecheck||bundleinstall但是当我运行gitpush时,我得到:remote:hooks/post-receive:line20:bundle:commandnotfound.我知道hook可能会从错误的环境中启动命令,并且我必须以某种方式从hook切换rvm环境。我尝试在接收后使用rvmuse1.8.7@rails3但它没有帮助。有什么想法吗? 最佳

git submodule update --init --recursive 父子仓库

.gitmodules:记录子模块信息在父项目新建submodule添加:gitsubmoduleadd 子模块仓库地址  子模块在父模块目录下的存储路径。注意:路径不能以/结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利Clone)删除:首先删除.gitmodules文件下的对应子模块信息,然后 gitrm–cached 克隆下来的项目有submodule拉取submodule: gitsubmoduleupdate--init--recursive更新submodulegitsubmoduleupdate--remote或者在submodule打开gitbash,然后用gitp

ruby-on-rails - capistrano - NameError:未初始化的常量 Net::SSH::KnownHosts::SUPPORTED_TYPE

我正在尝试将我的Rails(3.1.3)应用程序部署到预生产环境。我使用capistrano(2.12.0)和rvm-capistrano(1.2.2)。当我调用bundleexeccapssh时,它工作正常。但是当我调用bundleexeccapdeploy时,我得到以下跟踪:$capdeploytriggeringstartcallbacksfor`deploy'*18:42:19==Currentlyexecuting`multistage:ensure'***Defaultingto`preprod'*18:42:19==Currentlyexecuting`preprod'*

ruby-on-rails - Capistrano 部署 :migrate and db:migrate run all migrations every time

因此,我正在使用rails(ruby1.9.3p392、rails3.2、sqlite3db)并尝试将无处不在的博客教程代码部署到“生产”服务器(apache、passenger、ubuntu)。我的deploy.rb看起来像这样:require'bundler/capistrano'require'rvm/capistrano'load'deploy/assets'set:rvm_ruby_string,ENV['GEM_HOME'].gsub(/.*\//,"")set:rvm_type,:userset:user,'blah'set:application,'railsTest'

ruby-on-rails - 如何访问 Capistrano 中的服务器特定选项?

我正在尝试将Capistrano配置为在两台不同的服务器上执行相同的任务,每台服务器都有不同的凭据。我想做一些类似的事情:namespace:deploydorole:db,"192.168.1.1",:credentials=>"db1.yml"role:db,"192.168.1.1",:credentials=>"db2.yml"task:mytask,:roles=>:dbdocredentials=YAML.load_file(something)...这可能吗?为了访问当前服务器配置,我应该用什么替换something? 最佳答案

ruby-on-rails - ENV 变量中的 Capistrano 和 API key ?

我正在使用Capistrano部署我的Rails应用程序。我想在服务器上保存一些APIkey作为环境变量。我使用Capistrano部署的Rails应用程序应该可以访问这些APIkey。作为守护进程运行的单独的ruby​​文件也应该可以访问这些APIkey。在环境变量中设置APIkey似乎是理想的解决方案,但是,我无法在我的Rails应用程序中使用ENV["SOME_KEY"]访问它们。根据thispost,因为capistrano以非交互和非登录方式运行,~/.bashrc和~/.bash_profile未加载。流程图建议我应该使用$BASH_ENV。我可以只在$BASH_ENV中添

ruby - sinatra路由中的几个可选参数

我需要Sinatra路由以下列方式运行:GET/list/20/10#Get20itemswithoffset10GET/list/20#Get20itemswithdefaultoffsetGET/list#Getdefaultnumberofitemswithdefaultoffset我明白,我可能会将值作为查询传递:GET/list?limit=20&offset=10但我想如上所述传递它们。我很确定有一种方法可以向Sinatra/Padrino解释我想做什么,但我目前完全被困住了。我试过:get:list,:map=>'/list',:with=>[:limit,:offset

ruby - 你如何在 Capistrano 中为不同的角色定义不同的相同任务?

我正在使用Capistrano来处理我的部署,我在我的设置中有两个不同的角色-:web和:processing。它们都有通常的:deploy任务,但:restart任务对于两种类型的服务器需要不同。所以我的第一次尝试是这样的:task:restart,:roles=>:webdorun"...webrelatedrestartstuff..."endtask:restart,:roles=>:processingdorun"...processingrelatedrestartstuff..."end这不起作用,因为第二个:restart(对于:processing角色)替换了第一个:

ruby - 一些 Capistrano 部署 Hook 不起作用

我正在使用Capistranov2.14.2并尝试为deploy:create_symlink使用before和afterHook>,但他们似乎都没有开火......我收到这个警告:[弃用警告]此API已更改,请Hook'deploy:create_symlink'而不是'deploy:symlink'。所以我更新了我的代码以使用deploy:create_symlink而不是deploy:symlink这是我的deploy.rb的一个片段namespace:foodotask:startdoputs"startingfoo..."endtask:stopdoputs"stopingf